A Tour of Cybersec notebook features.ipynb (4,283 lines of code) (raw):

{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# An introduction to Cybersec notebook features\n", "\n", "---\n", "\n", "# Contents\n", "\n", "- Introduction\n", "- Setting up the notebook environment\n", "- Querying data from Microsoft Sentinel\n", "- Visualizing data\n", "- Enriching data\n", "- Analyzing data\n", "- Using Pivot functions\n", "- Appendices\n", " - Additional resources\n", " - A brief introduction to pandas DataFrames\n", "\n", "---\n", "\n", "# Introduction\n", "\n", "This notebook takes you through some of the features of Microsoft Sentinel Notebooks and MSTICPy.\n", "\n", "If you are new to notebooks we strongly recommend starting with the:\n", "**A Getting Started Guide For Microsoft Sentinel ML notebooks**.\n", "\n", "After you've finished running this notebook, we also recommend:\n", "\n", "- **Configuring your environment** - this covers all of the configuration options for \n", " accessing external cybersec resources\n", "\n", "Each topic includes 'learn more' sections to provide you with the resource to deep\n", "dive into each of these topics. We encourage you to work through the notebook from start\n", "to finish.\n", "\n", "<div style=\"border: solid; padding: 5pt\">\n", "<b>Notes:</b>\n", "<ul>\n", " <li>This notebook assumes that you are running this in an Azure Notebooks environment</li>\n", " <li>This notebooks uses SigninLogs from your Microsoft Sentinel Workspace. If you are not\n", " yet collecting SigninLogs configure this connector in the Microsoft Sentinel portal before running this notebook.</li>\n", " <li>This notebook uses the following components and assumes that you have configuration\n", " set up for them as described in the **A Getting Started Guide For Microsoft Sentinel ML** notebook:\n", " <ul>\n", " <li>The VirusTotal Threat intelligence provider\n", " <li>The Maxmind GeoLite2 geolocation provider.\n", " </ul>\n", " </li>\n", "</ul>\n", "</div>\n", "\n", "<br>\n", "<hr>\n", "<h3 style=\"color: Black; background-color: Khaki; padding: 5px\">\n", "Note: Please run the the code cells in sequence. Skipping cells will results in errors.</h3>\n", "<hr>" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "# Setting up the notebook environment\n", "\n", "## MSTICPy initialization\n", "\n", "This cell installs/updates and initializes the MSTICPy package. It should complete without errors.\n", "\n", "If you see errors or warnings about missing configuration, please return\n", "to the **A Getting Started Guide For Microsoft Sentinel ML** notebook or\n", "the **Configuring your environment** to correct this." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%pip install --upgrade --quiet msticpy\n", "\n", "REQ_PYTHON_VER=\"3.10\"\n", "REQ_MSTICPY_VER=\"2.0.0\"\n", "\n", "# initialize msticpy\n", "import msticpy as mp\n", "from msticpy import nbwidgets\n", "mp.init_notebook(\n", " namespace=globals(),\n", " extra_imports=[\"urllib.request, urlretrieve\"],\n", " friendly_exceptions=False,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "# Querying Data from Microsoft Sentinel\n", "\n", "We will use MSTICPy's `QueryProvider()` class from MSTICPy to query data.\n", "\n", "Some of the next section is a review of material contained in the\n", "**A Getting Started Guide For Microsoft Sentinel ML** notebook.\n", "\n", "## The QueryProvider class\n", "\n", "The query provider class has one main function:<br>\n", "\n", "- querying data from a data source to make it available to view and analyze in the notebook.\n", "\n", "Query results are always returned as *pandas* DataFrames. If you are new\n", "to using *pandas* look at the **Introduction to Pandas** section at the end\n", "of this notebook.\n", "\n", "<div style=\"border: solid; padding: 5pt\"><b>Note:</b>\n", "you can use the <b>QueryProvider</b> class to connect to different data sources such as MDATP,\n", "Splunk, Microsoft Graph API, but these are not covered here.\n", "</div>\n", "\n", "### Learn more:\n", "\n", "- More details on configuring and using QueryProviders can be found in the\n", " [MSTICPy Documentation](https://msticpy.readthedocs.io/en/latest/data_acquisition/DataProviders.html#instantiating-a-query-provider).\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Choose whether to use demonstration or live Microsoft Sentinel\n", "\n", "You can use this notebook with either live data queried from Microsoft Sentinel\n", "or with sample data downloaded from the Azure-Sentinel-Notebooks GitHub.\n", "\n", "Run the following cell and use the option buttons to select which of these you want to use.\n", "The option buttons use a timeout. After 15 seconds the default of \"Demo data\"\n", "will be automatically selected.\n", "\n", "<div style=\"border: solid; padding: 5pt\"><b>Tip:</b>\n", "You can re-run this cell to select a different option but\n", "you <b>must also</b> re-run the cell following this one after changing your selection.<br>\n", "Doing this will re-initialize the data providers correctly.\n", "</div>\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "data_opt = nbwidgets.OptionButtons(\n", " description=\"Choose the data source\",\n", " buttons=[\"Microsoft Sentinel\", \"Demo data\"],\n", " default=\"Demo data\",\n", " timeout=15,\n", ")\n", "await data_opt.display_async()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Most of the code in the cell below handles download of demo data.\n", "\n", "<div style=\"border: solid; padding: 5pt\"><b>Notes:</b>\n", " <p>1. Demo is still downloaded even if chose Microsoft Sentinel (although this is\n", " cached after the first download). The demo data<br>\n", "is used as a backup if the queries to the Microsoft Sentinel workspace return\n", "no data.</p>\n", "<p>2. If you see a warning \"Runtime dependency of PyGObject is missing\" when loading the<br>\n", "Microsoft Sentinel driver please see the FAQ section at the end of the \n", " <i>A Getting Started Guide For Microsoft Sentinel ML Notebooks</i> notebook.</p>\n", "</div>" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from urllib.request import urlretrieve\n", "from pathlib import Path\n", "from IPython.display import HTML\n", "from tqdm.auto import tqdm\n", "\n", "GH_URI = \"https://raw.githubusercontent.com/Azure/Azure-Sentinel-Notebooks/master/{file_name}\"\n", "GH_FILES = {\n", " \"exchange_admin.pkl\": \"src/data\",\n", " \"processes_on_host.pkl\": \"src/data\",\n", " \"timeseries.pkl\": \"src/data\",\n", " \"data_queries.yaml\": \"src/data\",\n", " \"aad_logons.pkl\": \"src/data\",\n", " \"host_logons.pkl\": \"src/data\",\n", " \"alerts_list.pkl\": \"src/data\",\n", "}\n", "\n", "\n", "def _get_gh_files(files):\n", " tgt_path = Path(\"./asn_data\")\n", " tgt_path.mkdir(exist_ok=True)\n", " for file, path in tqdm(files.items(), desc=\"File downloads\", unit=\"file\"):\n", " file_path = tgt_path.joinpath(file)\n", " if file_path.is_file():\n", " continue\n", " url_path = f\"{path}/{file}\" if path else file\n", " urlretrieve(\n", " GH_URI.format(file_name=url_path),\n", " file_path\n", " )\n", " print(\"Files downloaded:\", \", \".join(files.keys()))\n", "\n", "\n", "def _update_timestamps(file):\n", " if not file.endswith(\".pkl\"):\n", " return\n", " data = pd.read_pickle(file)\n", " date_cols = data.select_dtypes('datetime').columns\n", " for col in date_cols:\n", " now_delta = pd.Timestamp(\"now\") - data[col].max()\n", " data[col] = data[col] + now_delta\n", " if not date_cols.empty:\n", " data.to_pickle(file)\n", "\n", "\n", "print(\"Downloading sample files...\")\n", "_get_gh_files(GH_FILES)\n", "for file in GH_FILES:\n", " _update_timestamps(f\"./asn_data/{file}\")\n", "\n", "# Create local data provider\n", "qry_prov = QueryProvider(\"LocalData\", data_paths=[\"./asn_data\"], query_paths=[\"./asn_data\"])\n", "print(\"Local data query provider loaded\")\n", "qry_prov.connect()\n", "# Create Microsoft Sentinel\n", "qry_prov_azs = QueryProvider(\"AzureSentinel\")\n", "\n", "if data_opt.value and data_opt.value.casefold() != \"demo data\":\n", " # Create Microsoft Sentinel provider and connect\n", " qry_prov_loc = qry_prov\n", " qry_prov = qry_prov_azs\n", " display(HTML(\"\"\"\n", " <div style=\"color: White; background-color: DarkOliveGreen; padding: 5px\">\n", " <p style=\"font-size: 20px\">Using Microsoft Sentinel as primary data source.</p>\n", " <p>Please copy the code and click on the URL to authenticate\n", " to Microsoft Sentinel if prompted to do so.</p>\n", " </div>\n", " \"\"\"\n", " ))\n", " qry_prov.connect(WorkspaceConfig())\n", "else:\n", " display(HTML(\"\"\"\n", " <div style=\"color: White; background-color: DarkOliveGreen; padding: 5px\">\n", " <p style=\"font-size: 20px\">Using local data as primary data source.</p>\n", " </div>\n", " \"\"\"\n", " ))\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Microsoft Sentinel data schema\n", "\n", "Now that we have connected we can query Microsoft Sentinel for data.\n", "\n", "Before we do that there are a couple of things that help us understand what data is available to query.<br>\n", "The AzureSentinel QueryProvider has a \"schema_tables\" property that lets us get a list of tables\n", "as well the schema (column names and data types) for each table.\n", "\n", "After that we'll look at the queries available.\n", "\n", "<p style=\"border: solid; padding: 5pt\"><b>Note</b>:\n", "For local data this will just appear as a list of files.\n", "</p>" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Get list of tables in our Workspace with the 'schema_tables' property\n", "qry_prov.schema_tables[:10] # We are outputting only a sample (first 10) tables for brevity\n", " # remove the \"[:10]\" to see the whole list\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Display the schema for a single table\n", "if qry_prov.environment == \"AzureSentinel\":\n", " print(qry_prov.schema['SigninLogs'])\n", "else:\n", " md(\n", " \"Note: this is the schema of a local pandas DataFrame\"\n", " \" that emulates the Microsoft Sentinel schema\"\n", " )\n", " display(qry_prov.Azure.list_all_signins_geo().dtypes)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## MSTICPy Query browser\n", "\n", "MSTICPy includes a number of built in queries.\n", "Most require additional parameters such as the time range and often an\n", "identifying parameter such as the host name, account name or IP address that\n", "you are querying for.\n", "\n", "You also can list available queries from Python code with:\n", "```\n", "qry_prov.list_queries()\n", "```\n", "Get specific details about a query by calling it with \"?\" as a parameter:\n", "```\n", "qry_prov.Azure.list_all_signins_geo(\"?\")\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Query browser\n", "\n", "The query browser combines both of these functions in a scrollable\n", "and filterable list." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "qry_prov_azs.browse_queries()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Most queries require time parameters!\n", "\n", "Datetime strings are **painful** to type in and keep track of.\n", "\n", "Fortunately MSTICPy has an easier way to specify time parameters for queries:\n", "\n", "- you can use the built-in `query_time` widget to set the default time range for queries\n", "- alternatively, you can use the MSTICPy `nbwidgets.QueryTime` class to set a custom<br>\n", " time range and pass it as a parameter.\n", "\n", "Example of using standalone `nbwidgets.QueryTime` instance\n", "```python\n", "timerange = nbwidgets.QueryTime(units=\"day\")\n", "\n", "qry_prov.WindowsSecurity.list_host_logons(timerange, host_name=\"my_host\")\n", "```" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "qry_prov.query_time" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# The QueryProvider will automatically\n", "# extract the \"start\" and \"end\" parameters from the query_time property to use in the query.\n", "logons_df = qry_prov.Azure.list_all_signins_geo()\n", "\n", "# You can also specify these parameters explicitly\n", "# logons_df = qry_prov.Azure.list_all_signins_geo(\n", "# start=qry_prov.query_time.start,\n", "# end=qry_prov.query_time.end,\n", "# )\n", "\n", "if logons_df.empty:\n", " md(\"The query returned no rows for this time range. Using demo data.\")\n", " logons_df = qry_prov_loc.Azure.list_all_signins_geo()\n", "\n", "# display first 5 rows of any results\n", "logons_df.head() # If you have no data you will just see the column headings displayed" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Customizable queries\n", "\n", "Most built-in queries support the \"add_query_items\" parameter.\n", "You can use this to append additional filters or other operations to the built-in queries,\n", "\n", "<div style=\"border: solid; padding: 5pt\"><b>Notes:</b><br>\n", "1. For local data this query is emulated.<br>\n", "2. If using Microsoft Sentinel and you have no alerts for this period, no data will display.<br>\n", "Try extending the time range from the default of 2 to a larger number of days<br>\n", "in the code below.<br>E.g.\n", "<pre>start=datetime.utcnow() - timedelta(20),</pre>\n", "</div>" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from datetime import datetime, timedelta\n", "\n", "if qry_prov.environment == \"AzureSentinel\":\n", " # Actually run the query if using Microsoft Sentinel data\n", " display(\n", " qry_prov.SecurityAlert.list_alerts(\n", " start=datetime.utcnow() - timedelta(2),\n", " end=datetime.utcnow(),\n", " add_query_items=\"| summarize NumAlerts=count() by AlertName\"\n", " ).head()\n", " )\n", "else:\n", " # Emulate the results using pandas for local data\n", " display(\n", " qry_prov.SecurityAlert.list_alerts()\n", " [[\"AlertName\", \"TimeGenerated\"]]\n", " .groupby(\"AlertName\")\n", " .count()\n", " .rename(columns={\"TimeGenerated\": \"NumAlerts\"})\n", " .head()\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Custom queries\n", "\n", "Another way to run queries is to pass a full KQL query string to the query provider.\n", "\n", "This will run the query against the workspace connected to above, and will return the data \n", "in a [Pandas DataFrame](https://pandas.pydata.org/). We will look at working with Pandas in a bit more detail later.\n", "\n", "<p style=\"border: solid; padding: 5pt\"><b>Note</b>:\n", "exec_query is not supported for local data.\n", "</p>" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Define our query\n", "test_query = \"\"\"\n", "OfficeActivity\n", "| where TimeGenerated > ago(1d)\n", "| take 5\n", "\"\"\"\n", "\n", "# Pass that query to our QueryProvider\n", "if qry_prov.environment == \"LocalData\":\n", " print(\"exec_query not supported for local data\")\n", " print(test_query)\n", "else:\n", " office_events_df = qry_prov.exec_query(test_query)\n", " display(office_events_df)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Learn more:\n", "\n", " - You can learn more about the MSTICpy pre-defined queries in the [MSTICPy Documentation](https://msticpy.readthedocs.io/en/latest/data_acquisition/DataProviders.html#running-an-pre-defined-query)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "# Visualizing data\n", "\n", "## 1 - Using pandas and matplotlib\n", "\n", "Visualizing data can provide an excellent way to analyze data, identify patterns and anomalies. \n", "\n", "Python has a wide range of data visualization packages each of which have their own benefits and drawbacks.\n", "We will look at some basic capabilities as well as one of the visualizations in MSTICPy.\n", "<br><br><br>\n", "**Basic Graphs**<br>\n", "Pandas and Matplotlib provide the easiest and simplest way to produce simple plots of data:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Plot up to the first 5 IP addresses\n", "plot_df = logons_df\n", "if len(plot_df) > 100:\n", " plot_df = plot_df[:100]\n", "\n", "plot_df[\"IPAddress\"].value_counts().plot.barh(\n", " title=\"IP prevalence\", legend=False, figsize=(8, 8)\n", ");" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# If we have lots of data just plot the first 5 rows\n", "plot_df['IPAddress'].value_counts().plot.pie(\n", " figsize=(8, 10), title=\"Share of Logons per IP\"\n", ");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2 MSTICPy Event Timeline\n", "\n", "Much like the built-in pandas \"plot\" function, MSTICPy adds an Event timelines plotting\n", "function to DataFrames.\n", "\n", "Using the mp_timeline.plot() method on a DataFrame you can visualize the relative\n", "timing of events much more easily that from a data table.\n", "\n", "Unlike the previous Matplotlib charts, the Event Timeline uses Bokeh plots making it interactive.\n", "\n", "Using the toolbar buttons (to the left of the chart)\n", "\n", "- Pan from left to right (select the arrows) by dragging with the mouse\n", "- Zoom in on a selected area (magnifier tool) and draw a selection box with the mouse\n", "- Zoom with the mouse wheel (mouse + magnifier tool)\n", "- Display hide details about the individual events as you hover the mouse cursor over them<br>\n", " Note: you may see data for multiple events if more than one event is overlaid\n", "\n", "You can also use the Range Tool (the small graphic beneath the main timeline)\n", "\n", "- Drag the selection area to left or right\n", "- Grab the left or right edge of the selection area to change the selection size.\n", "\n", "<div style=\"border: solid; padding: 5pt\"><b>Notes:</b><br>\n", "1. Most Microsoft Sentinel data uses the common \"TimeGenerated\" timestamp column.<br>\n", "if your data uses a different timestamp column, specify this using the time_column parameter\n", "of the mp_plot.timeline() function. E.g.<br>\n", "<pre>df.mp_plot.timeline(time_column=\"EventStartTimeUTC\", ...)</pre>\n", "2. If there are a lot of logons in your query result the timeline may appear<br>\n", "to be a bar rather than individual events. You can use one of the zoom tools<br>\n", "described above to zoom in on individual events.\n", "</div>\n", "<br>\n", "<div style=\"border: solid; padding: 5pt\"><b>Tip:</b>\n", "You can also use the timeline functionality as standalone functions.<br>\n", "<pre>from msticpy.vis.timeline import display_timeline, display_timeline_values\n", "from msticpy.vis.timeline_duration import display_timeline_duration\n", "\n", "display_timeline(data, ...[other params])\n", "</pre>\n", "<b>display_timeline</b> - shows events as discrete diamonds<br>\n", "<b>display_timeline_values</b> - lets you display scalar values for each event<br>\n", "<b>display_timeline_duration</b> - shows bars of start/end of activity for a group of events<br>\n", "</div>" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "disp_cols = [\"UserPrincipalName\", \"IPAddress\", \"AppDisplayName\", \"Result\"]\n", "\n", "logons_df.mp_plot.timeline(\n", " title=\"Logon events\",\n", " source_columns=disp_cols, # columns displayed in hover\n", ")\n", "\n", "logons_df.mp_plot.timeline(\n", " title=\"Logon events by User\",\n", " source_columns=disp_cols, # columns displayed in hover\n", " group_by=\"Result\",\n", ")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Use the `group_by` parameter to partition the data" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "logons_df.mp_plot.timeline(\n", " group_by=\"AppDisplayName\",\n", " source_columns=disp_cols\n", ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "logons_df.mp_plot.timeline(\n", " group_by=\"IPAddress\",\n", " source_columns=[\"AppDisplayName\"],\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Learn more:\n", "\n", " - The [Infosec Jupyterbook](https://infosecjupyterbook.com/) includes a section on data visualization.\n", " - [Bokeh Library Documentation](https://bokeh.org/)\n", " - [Matplotlib tutorial](https://matplotlib.org/3.2.0/tutorials/index.html)\n", " - [Seaborn visualization library tutorial](https://seaborn.pydata.org/tutorial.html)\n", " - [MSTICPy Event timeline](https://msticpy.readthedocs.io/en/latest/visualization/EventTimeline.html)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "# Enriching data\n", "\n", "Now that we have seen how to query for data, and do some basic manipulation we\n", "can look at enriching this data with additional data sources.\n", "\n", "For this we are going to use an external threat intelligence provider to give\n", "us some more details about an IP address in our dataset using the\n", "[MSTICPy TIProvider](\"https://msticpy.readthedocs.io/en/latest/data_acquisition/TIProviders.html\")\n", "feature.\n", "\n", "<div style=\"border: solid; padding: 5pt\"><b>Note:</b>\n", "By default the TI Provider queries all configured TI sources.<br>\n", "To learn more about adding TI sources, see the TI Provider setup\n", "in the <i>A Getting Started Guide For Microsoft Sentinel ML Notebooks</i> notebook\n", "</div>" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Create our TI provider\n", "ti = TILookup()\n", "\n", "# Get the first logon IP address from our dataset\n", "ip = logons_df.iloc[1]['IPAddress']\n", "md(f\"IP Address to lookup is {ip}\")\n", "\n", "# Look up the IP in VirusTotal\n", "ti_resp = ti.lookup_ioc(ip)\n", "\n", "# Format our results as a DataFrame\n", "ti_resp = ti.result_to_df(ti_resp)\n", "display(ti_resp)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "ti_results = ti.lookup_iocs(logons_df[[\"IPAddress\"]].drop_duplicates().head(), \"IPAddress\")\n", "\n", "ti.browse_results(ti_results, severities=[\"information\", \"warning\", \"high\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Learn more:\n", "\n", "MSTICPy includes further threat intelligence capabilities as well as other data enrichment options. More details on these can be found in the [documentation](https://msticpy.readthedocs.io/en/latest/DataEnrichment.html)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "# Analyzing data\n", "\n", "With the data we have collected we may wish to perform some analysis on it in order to better understand it.\n", "\n", "MSTICPy includes a number of features to help with this, and there are a vast array of other data analysis capabilities available via Python ranging from simple processes to complex ML models.\n", "\n", "We will start simply and look at how we can decode some obfuscated command lines, so that we understand their content." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from msticpy.transform import base64unpack as b64\n", "# Take our encoded Powershell Command\n", "b64_cmd = \"powershell.exe -encodedCommand SW52b2tlLVdlYlJlcXVlc3QgaHR0cHM6Ly9jb250b3NvLmNvbS9tYWx3YXJlIC1PdXRGaWxlIEM6XG1hbHdhcmUuZXhl\"\n", "# Unpack the Base64 encoded elements\n", "unpack_txt = b64.unpack(input_string=b64_cmd)\n", "# Display our results and transform for easier reading\n", "unpack_txt[1].T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also use MSTICpy to extract Indicators of Compromise (IoCs) from a dataset.\n", "\n", "The IoCExtract class makes it easy to extract and match on a set of IoCs within our data.\n", "\n", "In the example below we take a US Cybersecurity & Infrastructure Security Agency (CISA) report and extract all domains listed in the report." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import requests\n", "# Set up our IoCExtract oject\n", "ioc_extractor = IoCExtract()\n", "# Download our threat report\n", "data = requests.get(\"https://www.us-cert.gov/sites/default/files/publications/AA20-099A_WHITE.stix.xml\")\n", "# Extract URLs listed in our report\n", "iocs = ioc_extractor.extract(data.text, ioc_types=\"url\")['url']\n", "# Display the first 5 iocs found in our report\n", "list(iocs)[:5]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Learn more:\n", "\n", "There are a wide range of options when it comes to data analysis in notebooks using Python. Here are some useful resources to get you started:\n", " - [MSITCpy DataAnalysis documentation](https://msticpy.readthedocs.io/en/latest/DataAnalysis.html)\n", " - Scikit-Learn is a popular Python ML data analysis library, which has a useful [tutorial](https://scikit-learn.org/stable/tutorial/basic/tutorial.html)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "# Pivot Functions\n", "\n", "Pivot functions use the concept of Cyber Entities to group MSTICPy functionality\n", "logically.\n", "\n", "An entity is something like an Account, IP Address or Host, and has one or more\n", "identifying properties.\n", "\n", "Pivot functions are methods of *Entities* that provide quick access to:\n", "\n", "- data queries related to an entity\n", "- enrichment functions relevant to that entity\n", "\n", "Pivot functions are dynamically attached to entities - so we need to\n", "load the Pivot library to initialize this\n", "\n", "## Motivations for Pivot functions\n", "\n", "- We had built a lot of functionality in MSTICPy for querying and enrichment\n", "- A lot of the functions had inconsistent type/parameter signatures\n", "- There was no easy discovery mechanism for these functions - you had to know!\n", "- Using entities as pivot points is a \"natural\" investigation pattern\n", "\n", "<div style=\"border: solid; padding:5pt\"><b>Notes:</b><br>\n", "1. You may see a warning/error about not being able to load the IPStack\n", "geo-ip provider. You can safely ignore this.<br>\n", "2. From MSTICPy v2.0.0 you do not need the \"from msticpy.datamodel.entities import *\"\n", "since these are imported in \"init_notebook\".\n", "</div>\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import warnings\n", "from msticpy.datamodel.entities import *\n", "\n", "with warnings.catch_warnings():\n", " warnings.simplefilter(\"ignore\")\n", " pivot = Pivot(namespace=globals())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use the pivot browser to see what functions are available for different entities.\n", "\n", "The **Help** drop-down panels show you more detail about the selected\n", "function.\n", "\n", "<div style=\"border: solid; padding: 5pt\"><b>Notes:</b><br>\n", "1. If you are using Local data (rather than data from Microsoft Sentinel)\n", "you will see fewer entities and pivot functions in the browser.\n", "This is because a lot of the pivot functions are data queries and\n", "the local data provider that we are using only has a limited number\n", "of queries defined.<br><br>\n", "2. The function-specific help shows the parameters and usage for the original function<br>\n", "that is wrapped by the Pivot interface. Use the parameter guidance in the generic\n", "help when calling pivot functions.\n", "</div>" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "pivot.browse()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can pass a single value to a pivot function.\n", "\n", "The result is returned as a pandas DataFrame.\n", "\n", "Here are five examples with the output shown below." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from IPython.display import HTML\n", "\n", "display(HTML(\"Dns resolution<br>\"))\n", "display(Dns.dns_resolve(\"www.microsoft.com\"))\n", "\n", "display(HTML(\"<br>Dns components<br>\"))\n", "display(Dns.util.dns_components(\"www.microsoft.com\"))\n", "\n", "display(HTML(\"<br>IP address type<br>\"))\n", "display(IpAddress.ip_type(\"24.16.133.227\"))\n", "\n", "display(HTML(\"<br>IP address ownership<br>\"))\n", "display(IpAddress.whois(\"24.16.133.227\"))\n", "\n", "display(HTML(\"<br>IP address location<br>\"))\n", "display(IpAddress.geoloc(\"24.16.133.227\"))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can also pass a DataFrame as a parameter. You also need to provide the column name\n", "that contains the data that you want to process." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "logons_subset = logons_df.drop_duplicates(\"IPAddress\").head()\n", "\n", "IpAddress.whois(logons_subset, column=\"IPAddress\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When using a DataFrame as input, you can also join the output data to the input data." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "IpAddress.whois(logons_subset[[\"IPAddress\", \"AppDisplayName\", \"TimeGenerated\"]], column=\"IPAddress\", join=\"left\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And because pivot functions always return DataFrames,\n", "you can easily use the output as input to MSTICPy functions.\n", "\n", "The first example shows sending the results from the WhoIs pivot function to a timeline plot." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "IpAddress.whois(\n", " logons_subset[[\"IPAddress\", \"AppDisplayName\", \"TimeGenerated\"]],\n", " column=\"IPAddress\",\n", " join=\"left\"\n", ").mp_plot.timeline(group_by=\"asn_description\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The second example shows using the tilookup_url Url pivot function to check<br>\n", "Threat intelligence reports for a URL and using the output as input to the TIBrowser" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "TILookup.browse_results(Url.tilookup_url(\"http://85.214.149.236:443/sugarcrm/themes/default/images/\"))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Learn more:\n", "\n", " - [MSTICPy Pivot Functions](https://msticpy.readthedocs.io/en/latest/data_analysis/PivotFunctions.html)\n", " - [Introduction to Pivot Functions notebook](https://github.com/microsoft/msticpy/blob/master/docs/notebooks/PivotFunctions-Introduction.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "# Conclusion\n", "\n", "This notebook has shown some basic components of MSTICPy and how to use them in notebooks for Microsoft Sentinel for security investigaitons.\n", "\n", "There are many more things possible using notebooks. We strongly encourage you to read the material referenced in the \"Learn More\" sections in this notebook.\n", "\n", "You can also explore the other Microsoft Sentinel notebooks in order to take advantage of the pre-built hunting logic, and understand other analysis techniques that are possible. </br>\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "# Appendices\n", "\n", "## Further resources\n", "\n", " - [Jupyter Notebooks: An Introduction](https://realpython.com/jupyter-notebook-introduction/)\n", " - [Threat Hunting in the cloud with Azure Notebooks](https://medium.com/@maarten.goet/threat-hunting-in-the-cloud-with-azure-notebooks-supercharge-your-hunting-skills-using-jupyter-8d69218e7ca0)\n", " - [MSTICPy documentation](https://msticpy.readthedocs.io/)\n", " - [Azure Machine Learning Notebooks documentation](https://docs.microsoft.com/azure/machine-learning/how-to-run-jupyter-notebooks)\n", " - [The Infosec Jupyterbook](https://infosecjupyterbook.com/introduction.html)\n", " - [Linux Host Explorer Notebook walkthrough](https://techcommunity.microsoft.com/t5/azure-sentinel/explorer-notebook-series-the-linux-host-explorer/ba-p/1138273)\n", " - [Why use Jupyter for Security Investigations](https://techcommunity.microsoft.com/t5/azure-sentinel/why-use-jupyter-for-security-investigations/ba-p/475729)\n", " - [Security Investigtions with Microsoft Sentinel & Notebooks](https://techcommunity.microsoft.com/t5/azure-sentinel/security-investigation-with-azure-sentinel-and-jupyter-notebooks/ba-p/432921)\n", " - [Pandas Documentation](https://pandas.pydata.org/pandas-docs/stable/user_guide/index.html)\n", " - [Bokeh Documentation](https://docs.bokeh.org/en/latest/)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "## Introduction to Pandas\n", "\n", "If you are working with data in the notebook a lot you will want to learn about **pandas**.\n", "Our query results are returned in the form of a Pandas DataFrame: \n", "they are a pivotal to Microsoft Sentinel notebooks and MSTICPy and are used for both input and output formats.\n", "\n", "Pandas DataFrames are incredibly versatile data structures with a lot of useful features.\n", "You might think of them as programmable Excel worksheets.\n", "\n", "We will cover a small number of them here and we recommend that you check\n", "out the Learn more section to learn more about Pandas features.\n", "<br>\n", "<br>\n", "\n", "### Displaying a DataFrame:\n", "\n", "The first thing we want to do is display our DataFrame.\n", "If the DataFrame is the last item in a code cell, you can just run the cell to display the data.\n", "\n", "You can the Jupyter display function - `display(df)` to explicitly display it - this is especially\n", "useful if you want to display a DataFrame from the middle of a code block in a cell.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# For this section we are going to create a DataFrame from data saved in a csv file\n", "data = logons_df\n", "\n", "# Display our DataFrame - using head to limit to first 3 rows\n", "display(data.head(3))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "<div style=\"border: solid; padding: 5pt\"><b>Note:</b>\n", "if the dataframe variable (\"data\" in the example above) is the last statement in a<br>\n", "code cell, Jupyter will automatically display it without using the `display()` function.<br>\n", "However, if you want to display a DataFrame in the middle of\n", "other code in a cell you must use the `display()` function.\n", "</div>\n", "\n", "You may not want to display the whole DataFrame and instead display only a subset of items.\n", "\n", "There are numerous ways to do this and the cell below shows some of the most widely used functions." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "md(\"Data size:\", \"bold\")\n", "md(f\"DateFrame shape is {data.shape[0]} rows x {data.shape[1]} columns\")\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "md(\"Display the first 2 rows using head(): \", \"bold\")\n", "display(data.head(2))\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "md(\"Display the 3rd row using iloc[]: \", \"bold\")\n", "display(data.iloc[3])\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "md(\"Show the column names in the DataFrame \", \"bold\")\n", "display(data.columns)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "md(\"Display just the TimeGenerated and TenantId columnns: \", \"bold\")\n", "display(data[[\"TimeGenerated\", \"TenantId\"]].head())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also choose to select a subset of our DataFrame by filtering the contents of the DataFrame.\n", "\n", "<div style=\"border: solid; padding: 5pt\"><b>Tip:</b>\n", "the syntax in these examples is using a technique called <i>boolean indexing</i>.\n", "<pre>data[&lt;boolean expression&gt;]</pre>\n", "returns all rows in the dataframe where the boolean expression is True.<br>\n", "In the first example we telling pandas to return all rows where the column value of\n", "<b>TargetUserName</b> matches 'MSTICAdmin'\n", "</div>" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "md(\"Display only rows where AppDisplayName value is 'Azure Portal': \", \"bold\")\n", "filtered_df = data[data['AppDisplayName'] == \"Azure Portal\"]\n", "display(filtered_df.head())\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "md(\"Display rows where ClientAppUsed is either 'Browser' or 'Mobile Apps and Desktop clients':\", \"bold\")\n", "filtered_df = data[data[\"ClientAppUsed\"].isin([\"Browser\", \"Mobile Apps and Desktop clients\"])].head()\n", "display(filtered_df)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Grouping and calculating aggregate totals on the groups is done using the `groupby` function." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# The basic groupby syntax counts all of columns other than the group column\n", "display(data.groupby(\"AppDisplayName\").count().head())\n", "\n", "# Selecting a subset of the columns and renaming gives a more readable output.\n", "display(\n", " data[[\"AppDisplayName\", \"TimeGenerated\"]]\n", " .groupby(\"AppDisplayName\")\n", " .count()\n", " .rename(columns={\"TimeGenerated\": \"AppCount\"})\n", " .head()\n", ")\n", "\n", "# Note: you can surround dataframe chained operations (as in the previous example)\n", "# with parentheses to split them into a more readable format." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Our DataFrame call also be extended to add new columns with additional data if required.\n", "The new column data can be static or calculated data as show in these examples." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "data_mod = data.copy()\n", "data_mod[\"NewCol\"] = \"Look at my new data!\" # Add the same string to every row in this column\n", "data_mod[\"Plus1Hr\"] = data_mod[\"TimeGenerated\"] + pd.Timedelta(\"1d\") # Calculated column (add 1 day to date)\n", "display(data_mod[[\"TenantId\",\"AppDisplayName\", \"TimeGenerated\", \"NewCol\", \"Plus1Hr\"]].head(5))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Learn more:\n", "There is a lot more you can do with Pandas, the links below provide some useful resources:\n", " - [Getting starting with Pandas](https://pandas.pydata.org/pandas-docs/stable/getting_started/index.html)\n", " - [Infosec Jupyerbook intro to Pandas](https://infosecjupyterbook.com/notebooks/tutorials/03_intro_to_pandas.html)\n", " - [A great list of Pandas hints and tricks](https://www.dataschool.io/python-pandas-tips-and-tricks/)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.8 - AzureML", "language": "python", "name": "python38-azureml" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" }, "vscode": { "interpreter": { "hash": "0f1a8e166ce5c1ec1911a36e4fdbd34b2f623e2a3442791008b8ac429a1d6070" } }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "002d7fab667e403d8217590c49ae37a1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Time (24hr)", "layout": "IPY_MODEL_2b70018057b24fc3a63ed29745f623d3", "style": "IPY_MODEL_cd896e81344a44ce9fdd67babebc5e13", "value": "00:53:11.847650" } }, "00c765ac6c414121a5335851b7469244": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_9e869d313ca749549b079b7de5ca48a1", "style": "IPY_MODEL_0bb2f2ede5aa4798af1885a72d67aed2", "value": "<h4>Set query time boundaries</h4>" } }, "02b7e0b369ec4a7cb8bd941b918f6f6b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "03e00b52eb954c3d908b81182bcce6fd": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Time (24hr)", "layout": "IPY_MODEL_be7da95dbf3041639476f6ef9b6f3fc2", "style": "IPY_MODEL_6d10fc2c4e6644188a1210635cc48e85", "value": "00:53:27.913767" } }, "04e1ff8410a7408e8e3a64c7e5104545": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "05018e82f7ce4d3881ccccfcfb52fd9e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "063194fdd8ce4453bd68afab4043f57e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "initial" } }, "06553eb6fb1a4737965b19131c16d61a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "children": [ "IPY_MODEL_f5b9207feaa140f9882fde1d57c9f09f", "IPY_MODEL_e103a3cd944e4ae490bdc37b2f7265e4", "IPY_MODEL_3bb10ae04baf41a78b3cbb0f0317db9a" ], "layout": "IPY_MODEL_48d3ab89c070415f9c9b83e65bbb6b27" } }, "075f9b12e48248b194109e5555cadcc9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "IntRangeSliderModel", "state": { "_model_name": "IntRangeSliderModel", "_view_name": "IntRangeSliderView", "description": "Time Range", "layout": "IPY_MODEL_15f88d0fbc2145b4a3c1d41260377c00", "max": 28, "min": -28, "style": "IPY_MODEL_f5e86ad26a6b4c52b7b12cf8732e5dba", "value": [ -1, 1 ] } }, "083781b30ab448aa9114052aabc3f7ef": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Query end time (UTC) : ", "layout": "IPY_MODEL_bf02e9cc61d348a79c448927aaed082e", "style": "IPY_MODEL_5efbdf5eab5c462f9e4487d79f91bce7", "value": "2021-08-04 00:53:27.546768" } }, "08b13afd72414d94a852d9be3492756f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "initial" } }, "0a61546ca8934fdb924de1139c2ccac0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "0ae21e26edfb42f9a92b67c9db47eea4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Time (24hr)", "layout": "IPY_MODEL_42e9dde04e2a4bc8bdd4f449f8dfc2d9", "style": "IPY_MODEL_8fb963cd4857475d84ba02f4281706d1", "value": "00:53:55.991404" } }, "0bb2f2ede5aa4798af1885a72d67aed2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "0c39d18a4fd2416094c77c0413f58dff": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_bda900fb5e4b46f3b5c61a776b9f4620", "IPY_MODEL_0fdc6892665648ef9fffd59f66d62f1d" ], "layout": "IPY_MODEL_7faa70fe0e744bf5a0567ad1377bfd1a" } }, "0c40f9ddd8b64ed7b69be5a7f52f09c6": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "70%" } }, "0c7e8a24640242d6a4bdf3e41d229dd7": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "0c901705470b47c6b5e9bc2bd59b8ced": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "0d361cd48fc741889c7c63ed06a29a55": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "IntRangeSliderModel", "state": { "_model_name": "IntRangeSliderModel", "_view_name": "IntRangeSliderView", "description": "Time Range", "layout": "IPY_MODEL_e22c0343f8a54115b472750341c3010e", "max": 28, "min": -28, "style": "IPY_MODEL_f3f88ca7835b4c64b296658a7adae171", "value": [ -1, 1 ] } }, "0ddbfe9aaaa24f55a19491df938ac594": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "IntRangeSliderModel", "state": { "_model_name": "IntRangeSliderModel", "_view_name": "IntRangeSliderView", "description": "Time Range", "layout": "IPY_MODEL_314ac39c60ae413083cfa9000f35f543", "max": 28, "min": -28, "style": "IPY_MODEL_853211874de642bbadabe663dd43001a", "value": [ -1, 1 ] } }, "0e4ab517d2994127ab77f68e4d61b141": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "50%" } }, "0f42f6a4bc2b41e8a83d9284adfae4fb": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "0f6490359c464fe6abf3fd99e9ee94be": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "0fdc6892665648ef9fffd59f66d62f1d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Time (24hr)", "layout": "IPY_MODEL_382238f82e97467ab663df322bd6cb8d", "style": "IPY_MODEL_911abeed262b4275b8fba856f04c6d51", "value": "00:53:55.628403" } }, "10040853102240f8a9385eb92fb692a6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_f7b690bc6f5c4f77b6093f3726f7db35", "IPY_MODEL_5502314e29784c9e96cda9c3f49aecef", "IPY_MODEL_8b61f79269284885813909957980e7b9" ], "layout": "IPY_MODEL_5a11e005cbac4433ab9606839a7d336e" } }, "1035887e8a644f5296ba9a7e6d198956": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "108032278e064da3bdd323453939263a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "children": [ "IPY_MODEL_798fd1518c8a45c9a4256950fb323258", "IPY_MODEL_8f23fc2412784558917435bf0e3288be", "IPY_MODEL_32bacc651aaf49b09077d9793d82e6ca" ], "layout": "IPY_MODEL_ace1b65d6be24e40ae826fc5110504cf" } }, "10f3f325b76c46edb0b986b535c80c4f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_7b50163474674f5f8ba685bf45950586", "IPY_MODEL_afa75c62127f4f75802815ac05409564" ], "layout": "IPY_MODEL_4d6d3a0869424d96b70cd446bcd4272a" } }, "12b5930d41cb49a3bfc3db4921ad3fff": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "100px" } }, "12df54ae848c42de9f873dac66a68497": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "initial" } }, "1310baa1ec104656bee3c57839c660e4": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "99%" } }, "13924258a25c486da67a5c05faa7318a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "15f88d0fbc2145b4a3c1d41260377c00": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "70%" } }, "1728b401674941a1b44ae527b3baffe1": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "17fd635762904528898594dfef88e5b2": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "183af7a62b144f1fb67cdf71970bdfd2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "initial" } }, "1845fdc81eb34ac7882907ed9728c5ff": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "50%" } }, "18738866d944468a9b963967942857de": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "70%" } }, "1d6de642fdfa4d87be61bb8cabe8f6cb": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "1d90a926807c4ae3a4797fdf2f31c14a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "1e65ee1874c540e5b7d3fa5a2213cdad": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Query end time (UTC) : ", "layout": "IPY_MODEL_efe0d11cc2ef4cee982b41abd78af9ed", "style": "IPY_MODEL_e3b6e0d43e794fe496c6c0529dd883f6", "value": "2021-08-04 00:53:11.847650" } }, "1ebaf3ee945d4d359ce026908ee5b74e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "70%" } }, "1f25d3c208ec49eea9284db0642bea3c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_dc35c48853f84ecc9454260c5b5517d5", "IPY_MODEL_002d7fab667e403d8217590c49ae37a1" ], "layout": "IPY_MODEL_82c82ac404b9459a9c815087bccd659d" } }, "2082291186d6449999f4ff466d32c0d0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "2238b9ac50a3476fa1666abca78acada": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "23d78204212b4964a628fc74f0b57bda": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "bar_style": "success", "layout": "IPY_MODEL_5ff0c843b99344fabb021813c017b24d", "max": 7, "style": "IPY_MODEL_88fdc4481dd64c958667426165fb5131", "value": 7 } }, "23ee631827204a52b74f770af2671107": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "24540b5cc4694331a0f99adcfd4a09d3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "24e5a62642584aafb712c22c0c93c55a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "2583dc8bd4c54d2da7a943a7b5224d91": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_bc263108151148d186545bc164ffebb4", "IPY_MODEL_73290073b13d4d22b6c2f3f7771306f0", "IPY_MODEL_a1da0a6e6b7b432b94d24cf032eb5cda" ], "layout": "IPY_MODEL_17fd635762904528898594dfef88e5b2" } }, "25e055be0a124a788c676a45d8788bbe": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "26045544f37b4a4a9f5c31e87f0b7d6c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "IntRangeSliderModel", "state": { "_model_name": "IntRangeSliderModel", "_view_name": "IntRangeSliderView", "description": "Time Range", "layout": "IPY_MODEL_1ebaf3ee945d4d359ce026908ee5b74e", "max": 28, "min": -28, "style": "IPY_MODEL_f31e585f31ce414394751bcbb95fde75", "value": [ -1, 1 ] } }, "26fec22465a34ca2ba0384b6f7f7cea6": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "50%" } }, "2707faa37ab14e028058107c1bd54f36": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "271926b2c30044969432658ef01af6b5": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "279bf7366e3d4f71bf5882b695f769fe": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "279fc59291aa4859b2ca3a3816c493e8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "27b7dc5be1394a0db8e5e95ba91731b5": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "28ffd70cd5d04f249ee9784aada7999c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "298534f9ac55442fa7ec2778e81ccd89": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "2a90088ac45e41278a218304e6decec1": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "2b70018057b24fc3a63ed29745f623d3": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "2e47f2272a054565a7bd410871b84420": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "50%" } }, "2f21b6c47c7f4fed8b271dafebb50ffd": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "50%" } }, "304a230ef4fb4f0a8a27d8a7da58f5c4": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "30570376526b47589bf2c634ec3bacba": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_a7ce10b1298e459e9039091b4ffa553d", "style": "IPY_MODEL_99e5ea3d46ed4718ba927e9d24e05796", "value": " 7/7 [00:00&lt;00:00, 388.88file/s]" } }, "308fdf7dc65544deaf9b3564cd9494b0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "minute", "hour", "day", "week" ], "index": 2, "layout": "IPY_MODEL_e90e7d22327d4003911124efa066ca30", "style": "IPY_MODEL_7a4a8c6ba7fb44858b2cfdd756dcf11b" } }, "30ffe8e7cb024625a64c587257f33636": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_0ddbfe9aaaa24f55a19491df938ac594", "IPY_MODEL_3a493eb63dde40329ef9625b46b19459" ], "layout": "IPY_MODEL_c96887f8756d4f61840261ca66fb964e" } }, "314ac39c60ae413083cfa9000f35f543": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "70%" } }, "32009915b90649c2ab961d2b0e993e78": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "95%" } }, "32bacc651aaf49b09077d9793d82e6ca": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "children": [ "IPY_MODEL_d30495db30694d8589d5390a7c201db5", "IPY_MODEL_f7b6db055d384b8a89ef2a63b19b0130", "IPY_MODEL_b08ee7fba1e44036951b88d1cf9e89be" ], "layout": "IPY_MODEL_77686e36750e4e89bf189d1cc71c54e1" } }, "33a99217ce17495e8fa6ddab8e29e74d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonStyleModel", "state": {} }, "34c22fe6890c48699f9fba8ce15cd700": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "initial" } }, "3610e5e4c1e24c129be3091cfd351017": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "36f78f12cadc415fa9d76963e4267d26": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "children": [ "IPY_MODEL_435e2875ac0746e693e48549beb92e17", "IPY_MODEL_10040853102240f8a9385eb92fb692a6" ], "layout": "IPY_MODEL_d6b6cc67083c442e871eafc97b0df268" } }, "382238f82e97467ab663df322bd6cb8d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "383dcbdf37c241e49af311b2ca036653": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "392c7871df2f42f892e148f195cf6ad4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SliderStyleModel", "state": { "description_width": "initial" } }, "3a493eb63dde40329ef9625b46b19459": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "minute", "hour", "day", "week" ], "index": 2, "layout": "IPY_MODEL_d9e5e60bff8348639d072a58c54452f2", "style": "IPY_MODEL_563712299af640c0b9f08fc34d8b2e43" } }, "3a7890bc10044ac9b7fe21025ac826d7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SliderStyleModel", "state": { "description_width": "initial" } }, "3bb10ae04baf41a78b3cbb0f0317db9a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "children": [ "IPY_MODEL_eb69f4f96fbb426a8ceadd914240fc57", "IPY_MODEL_5688c3924af24b5b8b1e9c63e43ea619", "IPY_MODEL_8627eeead23e43faaef1f1ff69f182d9" ], "layout": "IPY_MODEL_24e5a62642584aafb712c22c0c93c55a" } }, "3befb997adda4fafa4ba0741cb266db5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_cd355e4dd2544bb783c960055f87da03", "IPY_MODEL_485e2b0aac8f46c687a55abfe698a665" ], "layout": "IPY_MODEL_3d521886961b4580a209d36e788960bb" } }, "3c204f8c9cdc4a0282829d1caa671792": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonModel", "state": { "description": "Microsoft Sentinel", "layout": "IPY_MODEL_27b7dc5be1394a0db8e5e95ba91731b5", "style": "IPY_MODEL_33a99217ce17495e8fa6ddab8e29e74d" } }, "3d521886961b4580a209d36e788960bb": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "3e3c75170e04464e86894fa9fdecd9dd": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "3ebdb1d17a1b494a8c9aadc794ddca3d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "children": [ "IPY_MODEL_f7958900a8784ac6ac54a11493c1b34b", "IPY_MODEL_6df3976bb9994f21a78f2a660699b27e", "IPY_MODEL_8afb2de891034ab48e48835ec3fe5c16" ], "layout": "IPY_MODEL_4df2f13f204c4fefa2d7f3fa5f0a198d" } }, "3f98214e218348e08f4f4d9a8b713b58": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "4039d885a8d349bdb216758affcc38df": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_57325720e3fa4c8e847c401ec50297ce", "style": "IPY_MODEL_9f4916d0c44d47588c01835ddf77fd89", "value": "Choose the data source" } }, "42e9dde04e2a4bc8bdd4f449f8dfc2d9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "4317ec86ca644ec7b7fbe13daad38947": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "435e2875ac0746e693e48549beb92e17": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_e9706607e31942e6aad6f1774ea4d70c", "style": "IPY_MODEL_24540b5cc4694331a0f99adcfd4a09d3", "value": "Choose the data source" } }, "438b402e7c0847beb2acc10a738eef07": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "bar_style": "success", "layout": "IPY_MODEL_6d10f6cbb2fc40c8b96415b8262d70e1", "max": 7, "style": "IPY_MODEL_4317ec86ca644ec7b7fbe13daad38947", "value": 7 } }, "43bcd21aa3cd4a40b46b00deb7b41496": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "4563fc81a57748c7ae74a28d097c9727": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "50%" } }, "45c2363d365e48cf86adcacd5c63806e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonStyleModel", "state": {} }, "45cfc0fb830246748443c3210d64b5d7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "45d7cb1d274043ae974617dbbd3fe764": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "children": [ "IPY_MODEL_c75192e0e8bd4076abfcfc38f66ec993", "IPY_MODEL_f46f0db4e8664c5587baa1599109ce8a", "IPY_MODEL_c85cdcd70a8f44a781bc312c39ba9f7d" ], "layout": "IPY_MODEL_3f98214e218348e08f4f4d9a8b713b58" } }, "48229aac751e40c583f91e5a186cbbc3": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "485e2b0aac8f46c687a55abfe698a665": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "minute", "hour", "day", "week" ], "index": 2, "layout": "IPY_MODEL_12b5930d41cb49a3bfc3db4921ad3fff", "style": "IPY_MODEL_8713d281b7be419495eb60bb2c70327f" } }, "48ab54ba288c4b95a54f573d61d784fe": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "70%" } }, "48d3ab89c070415f9c9b83e65bbb6b27": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "48f1fc16d1724198b88e6a55e3a58b4b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "49de2ad5acfb4a27a20dea6abd0708db": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "children": [ "IPY_MODEL_86c502327de14a459a45d334802f6292", "IPY_MODEL_575032ff731c44d89181d88f1856d99e", "IPY_MODEL_942d5968238f40c8a1c6edb600944d17" ], "layout": "IPY_MODEL_1728b401674941a1b44ae527b3baffe1" } }, "4a0af4dd095447cb980fd91d16756b9c": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "4baf91a976c54451b277e26d321c1e18": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Time (24hr)", "layout": "IPY_MODEL_f5041429a04a4956882e31a9001a757e", "style": "IPY_MODEL_9e5e43e21c8849b2a37c9eae2b0cf170", "value": "00:53:27.546768" } }, "4c23c9e970944d5d9c0553f9a9c16a8e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SliderStyleModel", "state": { "description_width": "initial" } }, "4d6d3a0869424d96b70cd446bcd4272a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "4df2f13f204c4fefa2d7f3fa5f0a198d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "4e256dc6ddda49a99902bd7f2aea92c7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "initial" } }, "4e79877ef43846bc817df4dc63db5835": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Time (24hr)", "layout": "IPY_MODEL_0c901705470b47c6b5e9bc2bd59b8ced", "style": "IPY_MODEL_8a39e23dc70e4890af4ab503dd1e35db", "value": "00:53:05.873453" } }, "4f8008adee9b4238981ce41e1c8be0f4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_90007191b80e4ec58331e6da8b62cb6b", "IPY_MODEL_23d78204212b4964a628fc74f0b57bda", "IPY_MODEL_ec40e3f973344ecfb9c1c978faaca95e" ], "layout": "IPY_MODEL_f67e2750fb514e22b171cb108aa77295" } }, "4ffb014bcc8c451ea710128cc87c1bdb": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "503cf6b07abe44b5a39af6c89a8e802e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "children": [ "IPY_MODEL_72c22a2fd4f54f6c9dd1f49d912ac0a5", "IPY_MODEL_1f25d3c208ec49eea9284db0642bea3c", "IPY_MODEL_a984c43af2454d5b84460fdac4c12528" ], "layout": "IPY_MODEL_9850b04ed3884771a7d34348d278fabf" } }, "512b94b7c26b483eb50e8d756fb330bf": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "51ba9fabbfda40bf9927a347856179a9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "53c8f4d3dcd44134a4eb66294c9a9e0b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "50%" } }, "5502314e29784c9e96cda9c3f49aecef": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonModel", "state": { "description": "Demo data", "layout": "IPY_MODEL_79cdb36c42804e12824371582643f212", "style": "IPY_MODEL_b1d9231e21d84c60b59880ccd78f2a2e" } }, "555498883e8a45b194a7e1237b7293ed": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "558d95d93b4d4c10b6ba0af0792c402e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "initial" } }, "55bc5ac12ff541a1be8527338eaf4747": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_3c204f8c9cdc4a0282829d1caa671792", "IPY_MODEL_a5e1a564f1424062984c80308693d4ad", "IPY_MODEL_bb4254d4953c4b7ba922340894bd367f" ], "layout": "IPY_MODEL_3610e5e4c1e24c129be3091cfd351017" } }, "56198cf2e3644be0a0811ed4d56e3e11": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "children": [ "IPY_MODEL_4039d885a8d349bdb216758affcc38df", "IPY_MODEL_55bc5ac12ff541a1be8527338eaf4747" ], "layout": "IPY_MODEL_68d72ff54b5449ce96eb603e4844becc" } }, "563712299af640c0b9f08fc34d8b2e43": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "5688c3924af24b5b8b1e9c63e43ea619": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Query start time (UTC):", "layout": "IPY_MODEL_1845fdc81eb34ac7882907ed9728c5ff", "style": "IPY_MODEL_eadba6680b9a4728851ffd8eb8d00715", "value": "2021-08-02 00:53:05.873453" } }, "570d72eb30e2465181fc213e6a898976": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_edccea49dc58472ebb66d54de082c2da", "style": "IPY_MODEL_383dcbdf37c241e49af311b2ca036653", "value": " 7/7 [00:02&lt;00:00, 3.49file/s]" } }, "57325720e3fa4c8e847c401ec50297ce": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "575032ff731c44d89181d88f1856d99e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_85e3f266edf0412f83e2e328b54c49e5", "IPY_MODEL_4baf91a976c54451b277e26d321c1e18" ], "layout": "IPY_MODEL_51ba9fabbfda40bf9927a347856179a9" } }, "579a768f1bfb4319ad97bafd4e7ec51d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "5901adeadb8a496181fb9c269ded410a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "IntRangeSliderModel", "state": { "_model_name": "IntRangeSliderModel", "_view_name": "IntRangeSliderView", "description": "Time Range", "layout": "IPY_MODEL_f70849b2d82b45d0a7252d7f80e59222", "max": 28, "min": -28, "style": "IPY_MODEL_4c23c9e970944d5d9c0553f9a9c16a8e", "value": [ -1, 1 ] } }, "59cda71900a8469dbbe6dbb4b7bf6d52": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "5a11e005cbac4433ab9606839a7d336e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "5a395719fa644562837e0a543afdb82d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "5a68ec0f106f47bd8ed344dd5004d896": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "5a8e5fd7c48f4044b40d0ad350a6adb5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "minute", "hour", "day", "week" ], "index": 2, "layout": "IPY_MODEL_d36822c6608042cdbbb57c86c355c7a4", "style": "IPY_MODEL_579a768f1bfb4319ad97bafd4e7ec51d" } }, "5b8c95b5a7bf4140b73abe10c60adbdf": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "5e35a23b27a043b9956ba5c023fe2d60": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "children": [ "IPY_MODEL_abfb91b4dbc748c9b421cb40ad8ed490", "IPY_MODEL_d65cff0fd2a4451e98376cb532419a08", "IPY_MODEL_66c904503e8f4a13813fb0f3ec1ebe93" ], "layout": "IPY_MODEL_23ee631827204a52b74f770af2671107" } }, "5eb31037244340eda932bdf1e5ef28f8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "5efbdf5eab5c462f9e4487d79f91bce7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "initial" } }, "5ff0c843b99344fabb021813c017b24d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "60f605977475457683bb19c9487c58df": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Time (24hr)", "layout": "IPY_MODEL_279fc59291aa4859b2ca3a3816c493e8", "style": "IPY_MODEL_fce84ac924804a7fbca38426878568b4", "value": "00:54:15.596797" } }, "61247287082f470392ec55d78a4f7f48": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "70%" } }, "6147c739cd4a478f8dcae08f8b07f661": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "left": "10px" } }, "6402a870602240309b8a3ab15feab9a1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "64d30320d7e24e80bcb06af76062b51e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "children": [ "IPY_MODEL_f623222bd2fb4ab5ae13094b232e68b7", "IPY_MODEL_7a74653a2ee24d3eaf176adeff371656", "IPY_MODEL_5e35a23b27a043b9956ba5c023fe2d60" ], "layout": "IPY_MODEL_0c7e8a24640242d6a4bdf3e41d229dd7" } }, "6647a87462c84ee09d01f9491b294910": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_6d10f2d2fd104da5b2a265600b0f50fa", "style": "IPY_MODEL_be53d2c4ba8d450f9b7ee0ab9cb7d1bd", "value": "File downloads: 100%" } }, "669a41c4a516401a93a05ae2a555b2d3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_c5f12745ebf24c3083a97ee6d3d4b5d6", "IPY_MODEL_8475652f38464ad58cbe1b10a143af4b", "IPY_MODEL_570d72eb30e2465181fc213e6a898976" ], "layout": "IPY_MODEL_0f6490359c464fe6abf3fd99e9ee94be" } }, "66c904503e8f4a13813fb0f3ec1ebe93": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Query end time (UTC) : ", "layout": "IPY_MODEL_2f21b6c47c7f4fed8b271dafebb50ffd", "style": "IPY_MODEL_4e256dc6ddda49a99902bd7f2aea92c7", "value": "2021-08-04 00:54:15.596797" } }, "6724f7301376453cae7d6456906f7258": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Query start time (UTC):", "layout": "IPY_MODEL_bcf2ab52966d4905a8181d890110a261", "style": "IPY_MODEL_b10f5a6e5e14478f80e41da68f536d3e", "value": "2021-08-02 00:53:55.991404" } }, "678381e46312465d81dd5e9ccbdf8a40": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "100px" } }, "688230b7261348038691373852383703": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "68d72ff54b5449ce96eb603e4844becc": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "6d10f2d2fd104da5b2a265600b0f50fa": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "6d10f6cbb2fc40c8b96415b8262d70e1": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "6d10fc2c4e6644188a1210635cc48e85": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "6d613abd29f44ff8b142fe28dc9ed4fa": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_075f9b12e48248b194109e5555cadcc9", "IPY_MODEL_bd07a394abf6430bae2d5d08f6ee34f7" ], "layout": "IPY_MODEL_8c18c2d77571430b9b4e72272ce81da0" } }, "6df3976bb9994f21a78f2a660699b27e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Query start time (UTC):", "layout": "IPY_MODEL_8f539a6260624a998ec1a9ee0ebeef62", "style": "IPY_MODEL_063194fdd8ce4453bd68afab4043f57e", "value": "2021-08-02 00:53:27.913767" } }, "6e4e5162777743b7bad753eac9dbe5d9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "50%" } }, "7019875c6b8c442a853bbc196136a1e3": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "719da61ee4ba4b5786b6122d0269474b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "bar_style": "success", "layout": "IPY_MODEL_f7d6986b75f44af684732e1166302754", "max": 7, "style": "IPY_MODEL_b6fc83d018fd4b1ab24ab25cd02d8188", "value": 7 } }, "72c22a2fd4f54f6c9dd1f49d912ac0a5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_271926b2c30044969432658ef01af6b5", "style": "IPY_MODEL_45cfc0fb830246748443c3210d64b5d7", "value": "<h4>Set query time boundaries</h4>" } }, "72d1df98330745ceb47f36c3871f2cb8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SliderStyleModel", "state": { "description_width": "initial" } }, "73290073b13d4d22b6c2f3f7771306f0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "bar_style": "success", "layout": "IPY_MODEL_946aaf94b95845ce84e19332593d1bb1", "max": 7, "style": "IPY_MODEL_5a395719fa644562837e0a543afdb82d", "value": 7 } }, "738e09a8795d4c5f8b33e048d3325836": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "745b90043e664dc8b7d251805a54c4f8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "763f989f5ff04b3fabbee1ee44a0c812": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "77686e36750e4e89bf189d1cc71c54e1": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "77b21b9fe37d4c3baec690f8ee9a20ea": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "79293ca2d3164a83a99fcc3d35ef29ab": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Query start time (UTC):", "layout": "IPY_MODEL_d51d65ed1eee48ea80011109fa176e99", "style": "IPY_MODEL_183af7a62b144f1fb67cdf71970bdfd2", "value": "2021-08-02 00:53:27.546768" } }, "798fd1518c8a45c9a4256950fb323258": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_1035887e8a644f5296ba9a7e6d198956", "style": "IPY_MODEL_d412f02c93c84d0a9866a3e5682d3370", "value": "<h4>Set query time boundaries</h4>" } }, "79cdb36c42804e12824371582643f212": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "79e9ee09d999435d818c5345fc103b2d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Query start time (UTC):", "layout": "IPY_MODEL_0e4ab517d2994127ab77f68e4d61b141", "style": "IPY_MODEL_df7cfe05b4174e30a5857026653a93d4", "value": "2021-08-02 00:53:55.628403" } }, "7a2ef038393949d5a6ce0a8a71a01229": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "100px" } }, "7a4a8c6ba7fb44858b2cfdd756dcf11b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "7a74653a2ee24d3eaf176adeff371656": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_a2d1675a6a7f42988184598c8e219cd8", "IPY_MODEL_60f605977475457683bb19c9487c58df" ], "layout": "IPY_MODEL_de58cec0ef6b45e89ce76a0e3f0226f3" } }, "7ad618d5c7674984bbc2df98403c40b4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_6647a87462c84ee09d01f9491b294910", "IPY_MODEL_719da61ee4ba4b5786b6122d0269474b", "IPY_MODEL_30570376526b47589bf2c634ec3bacba" ], "layout": "IPY_MODEL_1d6de642fdfa4d87be61bb8cabe8f6cb" } }, "7b50163474674f5f8ba685bf45950586": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "IntRangeSliderModel", "state": { "_model_name": "IntRangeSliderModel", "_view_name": "IntRangeSliderView", "description": "Time Range", "layout": "IPY_MODEL_18738866d944468a9b963967942857de", "max": 28, "min": -28, "style": "IPY_MODEL_392c7871df2f42f892e148f195cf6ad4", "value": [ -1, 1 ] } }, "7faa70fe0e744bf5a0567ad1377bfd1a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "80b837bc2a47426c8182d19d7e8141cd": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DatePickerModel", "state": { "description": "Origin Date", "disabled": false, "layout": "IPY_MODEL_9328c2f67efb4898949d5b8ff625ccbd", "style": "IPY_MODEL_0a61546ca8934fdb924de1139c2ccac0", "value": { "date": 3, "month": 7, "year": 2021 } } }, "82c82ac404b9459a9c815087bccd659d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "8420a3498e764ed0b5e40a762a2d2a4b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "84418fd366f54ca9ab31897baf65fc94": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "children": [ "IPY_MODEL_10f3f325b76c46edb0b986b535c80c4f", "IPY_MODEL_79e9ee09d999435d818c5345fc103b2d", "IPY_MODEL_c54c57c735d04ef8b696c59bc6365d23" ], "layout": "IPY_MODEL_59cda71900a8469dbbe6dbb4b7bf6d52" } }, "8475652f38464ad58cbe1b10a143af4b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "bar_style": "success", "layout": "IPY_MODEL_745b90043e664dc8b7d251805a54c4f8", "max": 7, "style": "IPY_MODEL_8bfa226eca3645489cf36b1bbca926e8", "value": 7 } }, "853211874de642bbadabe663dd43001a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SliderStyleModel", "state": { "description_width": "initial" } }, "85e3f266edf0412f83e2e328b54c49e5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DatePickerModel", "state": { "description": "Origin Date", "disabled": false, "layout": "IPY_MODEL_9fc02083688a4e3ea1c5ad4cf9da358a", "style": "IPY_MODEL_a562766c42614e7caae4c9adad496525", "value": { "date": 3, "month": 7, "year": 2021 } } }, "8627eeead23e43faaef1f1ff69f182d9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Query end time (UTC) : ", "layout": "IPY_MODEL_c74bd972a0f749d289552af9de5f30bc", "style": "IPY_MODEL_9c82a968117944a5bd3079e61e7967a3", "value": "2021-08-04 00:53:05.873453" } }, "86c502327de14a459a45d334802f6292": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_4a0af4dd095447cb980fd91d16756b9c", "style": "IPY_MODEL_9cec34201be24f1d96b1ffd9c85ae830", "value": "<h4>Set query time boundaries</h4>" } }, "8713d281b7be419495eb60bb2c70327f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "88fdc4481dd64c958667426165fb5131": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "89db72600e6745808ba7b5ee9fb1835f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "IntRangeSliderModel", "state": { "_model_name": "IntRangeSliderModel", "_view_name": "IntRangeSliderView", "description": "Time Range", "layout": "IPY_MODEL_0c40f9ddd8b64ed7b69be5a7f52f09c6", "max": 28, "min": -28, "style": "IPY_MODEL_72d1df98330745ceb47f36c3871f2cb8", "value": [ -1, 1 ] } }, "8a39e23dc70e4890af4ab503dd1e35db": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "8afb2de891034ab48e48835ec3fe5c16": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Query end time (UTC) : ", "layout": "IPY_MODEL_6e4e5162777743b7bad753eac9dbe5d9", "style": "IPY_MODEL_34c22fe6890c48699f9fba8ce15cd700", "value": "2021-08-04 00:53:27.913767" } }, "8b61f79269284885813909957980e7b9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_fcb1ba8384a44c8e9f7ac9a8b11ebcf5", "style": "IPY_MODEL_13924258a25c486da67a5c05faa7318a", "value": "Option selected: 'Demo data'" } }, "8b8ffa61f2df4c95adbebba58e61727a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "minute", "hour", "day", "week" ], "index": 2, "layout": "IPY_MODEL_678381e46312465d81dd5e9ccbdf8a40", "style": "IPY_MODEL_b1eee5383e834092814bca3c89e89c14" } }, "8bd24bec711149e0822bb2e391b3af51": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "70%" } }, "8bfa226eca3645489cf36b1bbca926e8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "8c18c2d77571430b9b4e72272ce81da0": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "8c2e44dac56948a4a40dae68a10df62d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "initial" } }, "8ed8a334050e43f9a5802b95117bddb9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "minute", "hour", "day", "week" ], "index": 2, "layout": "IPY_MODEL_b05b71b09fac45a5adb8aa89869ac64d", "style": "IPY_MODEL_2707faa37ab14e028058107c1bd54f36" } }, "8f23fc2412784558917435bf0e3288be": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_f9968d5b544d4af69c94b7f70e5e0ec9", "IPY_MODEL_b889eeed56164701bd763cf333682edd" ], "layout": "IPY_MODEL_b3bbac2b52834d81b58675f70af02b35" } }, "8f539a6260624a998ec1a9ee0ebeef62": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "50%" } }, "8fb963cd4857475d84ba02f4281706d1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "90007191b80e4ec58331e6da8b62cb6b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_e5ab20f9ec174f9185e9c8db067b96d2", "style": "IPY_MODEL_e2dc74ccb34849fbb97d5b3c18c2c4c0", "value": "File downloads: 100%" } }, "9033f39c8774414baef577166c14e5c8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "50%" } }, "911abeed262b4275b8fba856f04c6d51": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "917e13c386884d70b641b0ffbdc547ea": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "9328c2f67efb4898949d5b8ff625ccbd": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "942d5968238f40c8a1c6edb600944d17": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "children": [ "IPY_MODEL_30ffe8e7cb024625a64c587257f33636", "IPY_MODEL_79293ca2d3164a83a99fcc3d35ef29ab", "IPY_MODEL_083781b30ab448aa9114052aabc3f7ef" ], "layout": "IPY_MODEL_7019875c6b8c442a853bbc196136a1e3" } }, "946aaf94b95845ce84e19332593d1bb1": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "94e522e56efe4718a84884acd67281f3": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "50%" } }, "9843e5f04184434a81a34c20e1b312dc": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "9850b04ed3884771a7d34348d278fabf": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "98c9ac44bc2341c19f2ec5e4177c5104": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "99e5ea3d46ed4718ba927e9d24e05796": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "9c04c86d9e2649c8bdb30cf25e8f6a2d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "99%" } }, "9c82a968117944a5bd3079e61e7967a3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "initial" } }, "9cec34201be24f1d96b1ffd9c85ae830": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "9e5e43e21c8849b2a37c9eae2b0cf170": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "9e869d313ca749549b079b7de5ca48a1": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "9eff4da1139148fbb9e0fe1319818b56": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "9f4916d0c44d47588c01835ddf77fd89": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "9fc02083688a4e3ea1c5ad4cf9da358a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "a13ca0722e294fc38c3cac869cd3a48b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "70%" } }, "a1da0a6e6b7b432b94d24cf032eb5cda": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_02b7e0b369ec4a7cb8bd941b918f6f6b", "style": "IPY_MODEL_e3e5a9bd8d7243aab5582e2d68ad15f0", "value": " 7/7 [00:00&lt;00:00, 397.08file/s]" } }, "a2d1675a6a7f42988184598c8e219cd8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DatePickerModel", "state": { "description": "Origin Date", "disabled": false, "layout": "IPY_MODEL_0f42f6a4bc2b41e8a83d9284adfae4fb", "style": "IPY_MODEL_512b94b7c26b483eb50e8d756fb330bf", "value": { "date": 3, "month": 7, "year": 2021 } } }, "a562766c42614e7caae4c9adad496525": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "a5e1a564f1424062984c80308693d4ad": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonModel", "state": { "description": "Demo data", "layout": "IPY_MODEL_f788ac07f19b4cecb49e390afa57d7d6", "style": "IPY_MODEL_45c2363d365e48cf86adcacd5c63806e" } }, "a7ce10b1298e459e9039091b4ffa553d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "a7ef2da9d35d4c43aa3e0e5a2572cbe8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "height": "150px", "width": "300px" } }, "a984c43af2454d5b84460fdac4c12528": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "children": [ "IPY_MODEL_6d613abd29f44ff8b142fe28dc9ed4fa", "IPY_MODEL_d9a68f35a6c04bcbb8770209b512aa7f", "IPY_MODEL_1e65ee1874c540e5b7d3fa5a2213cdad" ], "layout": "IPY_MODEL_5eb31037244340eda932bdf1e5ef28f8" } }, "abfb91b4dbc748c9b421cb40ad8ed490": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_5901adeadb8a496181fb9c269ded410a", "IPY_MODEL_308fdf7dc65544deaf9b3564cd9494b0" ], "layout": "IPY_MODEL_98c9ac44bc2341c19f2ec5e4177c5104" } }, "ace1b65d6be24e40ae826fc5110504cf": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "acfdf1fc3ac1420e9439af81e3fe0982": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "af21350d058542248d546e8b3a934960": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Query end time (UTC) : ", "layout": "IPY_MODEL_53c8f4d3dcd44134a4eb66294c9a9e0b", "style": "IPY_MODEL_e452f947cd8f409fa7cb3fdca2a46ea4", "value": "2021-08-04 00:53:55.991404" } }, "af769953b96c4f72afe8399641fcea15": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "100px" } }, "afa75c62127f4f75802815ac05409564": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "minute", "hour", "day", "week" ], "index": 2, "layout": "IPY_MODEL_af769953b96c4f72afe8399641fcea15", "style": "IPY_MODEL_917e13c386884d70b641b0ffbdc547ea" } }, "b05b71b09fac45a5adb8aa89869ac64d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "100px" } }, "b08ee7fba1e44036951b88d1cf9e89be": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Query end time (UTC) : ", "layout": "IPY_MODEL_94e522e56efe4718a84884acd67281f3", "style": "IPY_MODEL_8c2e44dac56948a4a40dae68a10df62d", "value": "2021-08-04 00:54:15.967651" } }, "b10f5a6e5e14478f80e41da68f536d3e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "initial" } }, "b1d9231e21d84c60b59880ccd78f2a2e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonStyleModel", "state": {} }, "b1eee5383e834092814bca3c89e89c14": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "b3bbac2b52834d81b58675f70af02b35": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "b4f1b4cdfdea4cacb15ef1a978eae0d2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DatePickerModel", "state": { "description": "Origin Date", "disabled": false, "layout": "IPY_MODEL_c32258fd752a495c913ef4cdfbff16a6", "style": "IPY_MODEL_ebb76b8e026f48158fece24d46a20b51", "value": { "date": 3, "month": 7, "year": 2021 } } }, "b598872269de4d7f81cda09c8e68f2c4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "b6bdffd583fb477a9911ed9ca6f33dd2": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "height": "150px", "width": "300px" } }, "b6fc83d018fd4b1ab24ab25cd02d8188": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "b889eeed56164701bd763cf333682edd": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Time (24hr)", "layout": "IPY_MODEL_48f1fc16d1724198b88e6a55e3a58b4b", "style": "IPY_MODEL_28ffd70cd5d04f249ee9784aada7999c", "value": "00:54:15.967651" } }, "bb4254d4953c4b7ba922340894bd367f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_6147c739cd4a478f8dcae08f8b07f661", "style": "IPY_MODEL_04e1ff8410a7408e8e3a64c7e5104545", "value": "Option selected: 'Microsoft Sentinel'" } }, "bc263108151148d186545bc164ffebb4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_688230b7261348038691373852383703", "style": "IPY_MODEL_4ffb014bcc8c451ea710128cc87c1bdb", "value": "File downloads: 100%" } }, "bcb1479f62d148c18f95891dfc692f5f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_80b837bc2a47426c8182d19d7e8141cd", "IPY_MODEL_03e00b52eb954c3d908b81182bcce6fd" ], "layout": "IPY_MODEL_43bcd21aa3cd4a40b46b00deb7b41496" } }, "bcf2ab52966d4905a8181d890110a261": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "50%" } }, "bd07a394abf6430bae2d5d08f6ee34f7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "minute", "hour", "day", "week" ], "index": 2, "layout": "IPY_MODEL_7a2ef038393949d5a6ce0a8a71a01229", "style": "IPY_MODEL_f98308d420ec4ac994cb4a48f885407a" } }, "bda900fb5e4b46f3b5c61a776b9f4620": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DatePickerModel", "state": { "description": "Origin Date", "disabled": false, "layout": "IPY_MODEL_9843e5f04184434a81a34c20e1b312dc", "style": "IPY_MODEL_763f989f5ff04b3fabbee1ee44a0c812", "value": { "date": 3, "month": 7, "year": 2021 } } }, "be53d2c4ba8d450f9b7ee0ab9cb7d1bd": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "be7da95dbf3041639476f6ef9b6f3fc2": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "bf02e9cc61d348a79c448927aaed082e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "50%" } }, "c32258fd752a495c913ef4cdfbff16a6": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "c54c57c735d04ef8b696c59bc6365d23": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Query end time (UTC) : ", "layout": "IPY_MODEL_2e47f2272a054565a7bd410871b84420", "style": "IPY_MODEL_08b13afd72414d94a852d9be3492756f", "value": "2021-08-04 00:53:55.628403" } }, "c5f12745ebf24c3083a97ee6d3d4b5d6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_9eff4da1139148fbb9e0fe1319818b56", "style": "IPY_MODEL_ffe10cc17f314fdfb03ae264f8a5cc75", "value": "File downloads: 100%" } }, "c74bd972a0f749d289552af9de5f30bc": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "50%" } }, "c75192e0e8bd4076abfcfc38f66ec993": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_48229aac751e40c583f91e5a186cbbc3", "style": "IPY_MODEL_25e055be0a124a788c676a45d8788bbe", "value": "<h4>Set query time boundaries</h4>" } }, "c85cdcd70a8f44a781bc312c39ba9f7d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "children": [ "IPY_MODEL_3befb997adda4fafa4ba0741cb266db5", "IPY_MODEL_6724f7301376453cae7d6456906f7258", "IPY_MODEL_af21350d058542248d546e8b3a934960" ], "layout": "IPY_MODEL_fdfd90f08c8f4e798950b426771a7d10" } }, "c8b7d15038e74a7f8e747ed7248dbb3f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_f344431ca9fa44aaa46f81ddc79e0854", "IPY_MODEL_438b402e7c0847beb2acc10a738eef07", "IPY_MODEL_edb8127cc3cb49c8bf498fb180529ea3" ], "layout": "IPY_MODEL_d879afd84dbc4547a46f3c4d995a0d28" } }, "c96887f8756d4f61840261ca66fb964e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "cb4e66a99f5f4ababff6f2eaafb56fdc": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "cd355e4dd2544bb783c960055f87da03": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "IntRangeSliderModel", "state": { "_model_name": "IntRangeSliderModel", "_view_name": "IntRangeSliderView", "description": "Time Range", "layout": "IPY_MODEL_8bd24bec711149e0822bb2e391b3af51", "max": 28, "min": -28, "style": "IPY_MODEL_3a7890bc10044ac9b7fe21025ac826d7", "value": [ -1, 1 ] } }, "cd896e81344a44ce9fdd67babebc5e13": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "cfa1ab4dc87a46a3a36c9af6e8b963e0": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "d0f72ef14b0f42eeb0ba9e93f20a715a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "d30495db30694d8589d5390a7c201db5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_89db72600e6745808ba7b5ee9fb1835f", "IPY_MODEL_8ed8a334050e43f9a5802b95117bddb9" ], "layout": "IPY_MODEL_5b8c95b5a7bf4140b73abe10c60adbdf" } }, "d36822c6608042cdbbb57c86c355c7a4": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "100px" } }, "d412f02c93c84d0a9866a3e5682d3370": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "d46a70561d9b40be8337992b966bddff": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonStyleModel", "state": {} }, "d51d65ed1eee48ea80011109fa176e99": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "50%" } }, "d65cff0fd2a4451e98376cb532419a08": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Query start time (UTC):", "layout": "IPY_MODEL_26fec22465a34ca2ba0384b6f7f7cea6", "style": "IPY_MODEL_fdd88e599038475e9d71aabece0c02c7", "value": "2021-08-02 00:54:15.596797" } }, "d6b6cc67083c442e871eafc97b0df268": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "d879afd84dbc4547a46f3c4d995a0d28": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "d9a68f35a6c04bcbb8770209b512aa7f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Query start time (UTC):", "layout": "IPY_MODEL_9033f39c8774414baef577166c14e5c8", "style": "IPY_MODEL_12df54ae848c42de9f873dac66a68497", "value": "2021-08-02 00:53:11.847650" } }, "d9e5e60bff8348639d072a58c54452f2": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "100px" } }, "dc267bbb524342e89c06ec233ac06867": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "dc35c48853f84ecc9454260c5b5517d5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DatePickerModel", "state": { "description": "Origin Date", "disabled": false, "layout": "IPY_MODEL_77b21b9fe37d4c3baec690f8ee9a20ea", "style": "IPY_MODEL_f514be44727e4219b74a0e13a45ec853", "value": { "date": 3, "month": 7, "year": 2021 } } }, "dd8ef884e3144ca39ed618bc67972661": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DatePickerModel", "state": { "description": "Origin Date", "disabled": false, "layout": "IPY_MODEL_e55b3e8c9d624402a224fd25d7016dce", "style": "IPY_MODEL_e18b41413c864cf99ace33b85a250482", "value": { "date": 3, "month": 7, "year": 2021 } } }, "de58cec0ef6b45e89ce76a0e3f0226f3": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "df7cfe05b4174e30a5857026653a93d4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "initial" } }, "e103a3cd944e4ae490bdc37b2f7265e4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_dd8ef884e3144ca39ed618bc67972661", "IPY_MODEL_4e79877ef43846bc817df4dc63db5835" ], "layout": "IPY_MODEL_dc267bbb524342e89c06ec233ac06867" } }, "e18b41413c864cf99ace33b85a250482": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "e22c0343f8a54115b472750341c3010e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "70%" } }, "e2c94366e36a4020ae27e674b8df5e20": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "95%" } }, "e2dc74ccb34849fbb97d5b3c18c2c4c0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "e3b6e0d43e794fe496c6c0529dd883f6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "initial" } }, "e3e5a9bd8d7243aab5582e2d68ad15f0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "e452f947cd8f409fa7cb3fdca2a46ea4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "initial" } }, "e55b3e8c9d624402a224fd25d7016dce": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "e5ab20f9ec174f9185e9c8db067b96d2": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "e90e7d22327d4003911124efa066ca30": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "100px" } }, "e9706607e31942e6aad6f1774ea4d70c": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "eadba6680b9a4728851ffd8eb8d00715": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "initial" } }, "eb69f4f96fbb426a8ceadd914240fc57": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_26045544f37b4a4a9f5c31e87f0b7d6c", "IPY_MODEL_8b8ffa61f2df4c95adbebba58e61727a" ], "layout": "IPY_MODEL_2a90088ac45e41278a218304e6decec1" } }, "ebb76b8e026f48158fece24d46a20b51": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "ec044aa29742463b95c311dbc4c88995": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "children": [ "IPY_MODEL_00c765ac6c414121a5335851b7469244", "IPY_MODEL_bcb1479f62d148c18f95891dfc692f5f", "IPY_MODEL_3ebdb1d17a1b494a8c9aadc794ddca3d" ], "layout": "IPY_MODEL_1d90a926807c4ae3a4797fdf2f31c14a" } }, "ec40e3f973344ecfb9c1c978faaca95e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_2238b9ac50a3476fa1666abca78acada", "style": "IPY_MODEL_b598872269de4d7f81cda09c8e68f2c4", "value": " 7/7 [00:00&lt;00:00, 388.85file/s]" } }, "ed185be8d2934f67aa4fce5b85ff241b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "VBoxModel", "state": { "children": [ "IPY_MODEL_f63991d097634ff1a876cc00c285fccc", "IPY_MODEL_0c39d18a4fd2416094c77c0413f58dff", "IPY_MODEL_84418fd366f54ca9ab31897baf65fc94" ], "layout": "IPY_MODEL_5a68ec0f106f47bd8ed344dd5004d896" } }, "edb8127cc3cb49c8bf498fb180529ea3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_cfa1ab4dc87a46a3a36c9af6e8b963e0", "style": "IPY_MODEL_2082291186d6449999f4ff466d32c0d0", "value": " 7/7 [00:00&lt;00:00, 411.74file/s]" } }, "edccea49dc58472ebb66d54de082c2da": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "eef1cac2cd2149c0a405d1d35f98a505": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "efe0d11cc2ef4cee982b41abd78af9ed": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "50%" } }, "f31e585f31ce414394751bcbb95fde75": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SliderStyleModel", "state": { "description_width": "initial" } }, "f344431ca9fa44aaa46f81ddc79e0854": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_298534f9ac55442fa7ec2778e81ccd89", "style": "IPY_MODEL_8420a3498e764ed0b5e40a762a2d2a4b", "value": "File downloads: 100%" } }, "f3f88ca7835b4c64b296658a7adae171": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SliderStyleModel", "state": { "description_width": "initial" } }, "f46f0db4e8664c5587baa1599109ce8a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_b4f1b4cdfdea4cacb15ef1a978eae0d2", "IPY_MODEL_0ae21e26edfb42f9a92b67c9db47eea4" ], "layout": "IPY_MODEL_eef1cac2cd2149c0a405d1d35f98a505" } }, "f49ee6ed5fcc4fa0bcc18a69f865be4c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_9c04c86d9e2649c8bdb30cf25e8f6a2d", "style": "IPY_MODEL_279bf7366e3d4f71bf5882b695f769fe" } }, "f5041429a04a4956882e31a9001a757e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "f514be44727e4219b74a0e13a45ec853": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "f5b9207feaa140f9882fde1d57c9f09f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_fb9b8b3f5e434bceb55bc306318ec5f9", "style": "IPY_MODEL_738e09a8795d4c5f8b33e048d3325836", "value": "<h4>Set query time boundaries</h4>" } }, "f5e86ad26a6b4c52b7b12cf8732e5dba": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SliderStyleModel", "state": { "description_width": "initial" } }, "f623222bd2fb4ab5ae13094b232e68b7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_304a230ef4fb4f0a8a27d8a7da58f5c4", "style": "IPY_MODEL_acfdf1fc3ac1420e9439af81e3fe0982", "value": "<h4>Set query time boundaries</h4>" } }, "f63991d097634ff1a876cc00c285fccc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "layout": "IPY_MODEL_555498883e8a45b194a7e1237b7293ed", "style": "IPY_MODEL_6402a870602240309b8a3ab15feab9a1", "value": "<h4>Set query time boundaries</h4>" } }, "f67e2750fb514e22b171cb108aa77295": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "f70849b2d82b45d0a7252d7f80e59222": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "width": "70%" } }, "f788ac07f19b4cecb49e390afa57d7d6": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "f7958900a8784ac6ac54a11493c1b34b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_0d361cd48fc741889c7c63ed06a29a55", "IPY_MODEL_5a8e5fd7c48f4044b40d0ad350a6adb5" ], "layout": "IPY_MODEL_05018e82f7ce4d3881ccccfcfb52fd9e" } }, "f7b690bc6f5c4f77b6093f3726f7db35": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonModel", "state": { "description": "Microsoft Sentinel", "layout": "IPY_MODEL_cb4e66a99f5f4ababff6f2eaafb56fdc", "style": "IPY_MODEL_d46a70561d9b40be8337992b966bddff" } }, "f7b6db055d384b8a89ef2a63b19b0130": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "TextModel", "state": { "description": "Query start time (UTC):", "layout": "IPY_MODEL_4563fc81a57748c7ae74a28d097c9727", "style": "IPY_MODEL_558d95d93b4d4c10b6ba0af0792c402e", "value": "2021-08-02 00:54:15.967651" } }, "f7d6986b75f44af684732e1166302754": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "f98308d420ec4ac994cb4a48f885407a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "f9968d5b544d4af69c94b7f70e5e0ec9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DatePickerModel", "state": { "description": "Origin Date", "disabled": false, "layout": "IPY_MODEL_3e3c75170e04464e86894fa9fdecd9dd", "style": "IPY_MODEL_d0f72ef14b0f42eeb0ba9e93f20a715a", "value": { "date": 3, "month": 7, "year": 2021 } } }, "fb9b8b3f5e434bceb55bc306318ec5f9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "fcb1ba8384a44c8e9f7ac9a8b11ebcf5": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "left": "10px" } }, "fce84ac924804a7fbca38426878568b4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "fdd88e599038475e9d71aabece0c02c7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "initial" } }, "fdfd90f08c8f4e798950b426771a7d10": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "ffe10cc17f314fdfb03ae264f8a5cc75": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } } }, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 4 }